\cleardoublepage
\vspace*{\fill}
\noindent
{\huge {%
Acknowledgements%
}}
\vspace{3ex}\par

In 2008, when I was still studying at Czech Technical University for a bachelor's degree I attended a Theorical Computer Science course with Mgr. Petr Matyáš. He taught me basics of graph theory, which served important role in my reasoning about mathematical and computer science problems. My final work for the course served as a basis for this thesis. It was a home work written over the course of single weekend, which targeted the same goals as this thesis. Unfortunately at that time my understanding of the problem was very limited, yet the work has taught me that I wasn't aiming for an impossible target.

A year later, in 2009, Ing. Ladislav Vagner, Ph.D. thought me the basics of compiler construction and intermediate representation of computer programs. This provided me with the necessary theoretical background for understanding how optimizing compilers work, which is very close to how static code analysis tools work.

In 2011, I attended a Software Verification and Testing class with Ing. Radek Mařík, CSc. The class provided me with deeper understanding of how programs can be analyzed and renewed my interest in the static code analysis. It also introduced me to model checkers and their ability to detect deadlocks. He later became my supervisor for this thesis and only thanks to his dedication and experience I was able to finish all the work in time.

Lastly, and most importantly, I wish to thank my family for supporting me throughout all my studies.